<?php // $Id: double.php,v 1.1 2006/01/10 18:30:29 alex Exp $
/**
 * Класс-контейнер данных в формате double
 *
 */
class sharpobj_data_item_float extends sharpobj_data_item
{
    protected $type = 'float';
    /**
     * Проверять ли входные данные на скалярность
     */
    protected $check_scalat = true;
    /**
     * Принудительно приводить к нужному типу данных
     */
    protected $set_vartype = 'float';
    
    protected  function viewMiscCheckFormatError($data,$opt=null)
    {   // Пользовательский фильтр формата данных
        // Если ошибка - возвращаем true
        // Для установки проверки должен быть переопределен
        if (is_numeric($data))
        {
            return false;
        }else 
        {
            $this->conditionError('format');
            return true;
        }
    }

    function viewOut_sql($opt=null)
    {
        if ($this->is_recurse)
        {
            mst_error('Рекурсия не поддерживается',
                "Для поддержки рекурсии метод ".__FUNCTION__." класса ".get_class($this)." должен быть переопределен",2);
        }
        // Возвращаем данные, обработанные для отображения в форме
        // if (is_null($this->readData()))
        if ($this->isNull())
		{
			return null;
		}else
		{
		    $locale = localeconv();
		    $data = $this->readData();
		    // Заменяем символы десятичной точки в текущей локали на точку
		    $data =str_replace($locale['decimal_point'],'.',$data);
			return addslashes($data);
		}
        
    }
}
class sharpobj_data_item_double extends sharpobj_data_item_float
{
    protected $type = 'double';
}
?>